package com.yunfei.utils.procedure;
import com.yunfei.bo.smrz.IdCardBo;
import com.yunfei.utils.string.StringUtil;
import oracle.jdbc.OracleTypes;
import org.springframework.transaction.annotation.Transactional;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
/**
 * @program: zntg_v2
 * @description:新建客户存储过程
 * @author: zhengyunfei
 * @create: 2018-12-03 17:02
 **/
public class NewUserProcedure {
    /**
    * @Description: CRM库
     * PKG_YL_INTERFACE.sp_addtunregister
     * 输入参数（按顺序）：
     * p_custname --客户名称
     * p_creator  --营销项目经理编号
     * p_sex       -- 性别 0 女 1 男
     * p_birdate  --生日
     * p_mobileno --手机号
     * p_address  --地址
     * 输出参数（按顺序）：
     * returncode --处理结果 0:失败 1成功
     * returninfo --结果描述 弹出框描述 当returncode=1时  返回客户号
    /**
    * @Description: prepareCall
    * @Param:userId  客户编号
    * @Param:pNationality 国家
    * @Param:cardType 证件类型
    * @Param:cardNo 证件号码
    * @Param:email 邮箱
    * @Param:mobile 手机号码 传入客户手机号
    * @Param:address 客户地址 必须传入对应的中文描述
    * @Param:conn 数据库连接
    * @return: com.yunfei.utils.procedure.ShiMingRenZhengProcedureReturnInfo
    * @Author: zhengyunfei
    * @Date: 2019/1/24
    * @time:11:50
    */
    @Transactional
    public ShiMingRenZhengProcedureReturnInfo save(IdCardBo param, Connection conn){
        ShiMingRenZhengProcedureReturnInfo renZhengProcedureReturnInfo=null;
        //输入参数
        String userId=param.getcCustNo();
        String cardType=param.getCardType();
        String cardNo=param.getCardNo();
        String email=param.getEmail();
        String mobile=param.getMobile();
        String address=param.getAreaAddress();
        String sex="";
        String birthDay="";
        //输出参数
        String pReasonCode;//处理结果:除1以外失败 1成功
        String pReasonInfo;//处理结果:结果描述
        String pReasonCode2;//处理结果:返回实名认证对应附件输出编号
        if(!StringUtil.isNullOrEmpty(userId)){
            try {
                if(!StringUtil.isNullOrEmpty(cardNo)&&"0".equals(cardType)){//身份证)
                    String sexNo=cardNo.substring(cardNo.length()-2,cardNo.length()-1);
                    int sexIndex=Integer.parseInt(sexNo);
                    int value=sexIndex%2;
                  /*  if(value==1){
                        sex="男";
                    }
                    if(value==0){
                        sex="女";
                    }*/
                    sex=value+"";
                    birthDay=cardNo.substring(6,14);
                }
                String sql = "call PKG_YL_INTERFACE.sp_addtunregister(?,?,?,?,?,?,?,?)";
                CallableStatement call = null;
                call = conn.prepareCall(sql);
                call.setString(1,param.getUserName());//客户名称
                call.setString(2,"9999999");//营销项目经理编号
                call.setString(3,sex);//性别
                call.setString(4,birthDay);//生日
                call.setString(5,mobile);//手机号
                call.setString(6,address);//地址
                call.registerOutParameter(7, OracleTypes.VARCHAR);
                call.registerOutParameter(8, OracleTypes.VARCHAR);
                call.execute();
                pReasonCode = call.getString(7);
                pReasonInfo = call.getString(8);
                renZhengProcedureReturnInfo=new ShiMingRenZhengProcedureReturnInfo();
                renZhengProcedureReturnInfo.setpReasonCode(pReasonCode);
                renZhengProcedureReturnInfo.setpReasonInfo(pReasonInfo);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return renZhengProcedureReturnInfo;
    }

    public static void  main(String args[]){
        String cardNo="411422198809021214";
        System.out.println(cardNo.substring(6,14));
    }
}
